package com.darthsith.bolloauto.model;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import com.darthsith.bolloauto.util.Constants;

public class Veicolo implements Constants, Serializable {
	
	private static final long serialVersionUID = 7496737434966902600L;
	private String tipo;
	private String targa;
	private String regione;
	private String cilindrata;
	private String potenza;
	private String euro;
	private String alimentazione;
	private String cavalli;
	private String posti;
	private String portata;
	private String peso;
	private String assi;
	private String categoria;
	private String immatricolazione;
	private String uso;
	private String ecoDiesel;
	private Map<String, String> map;
	
	public Veicolo() {
		setMap(new HashMap<String, String>());
	}
	
	public Veicolo(Map<String, String> map) {
		if (map!=null) {
			setMap(map);
			valorize();
		}
		else
			new Veicolo();
	}
	
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
		map.put(TIPO, tipo);
	}
	public String getTarga() {
		return targa;
	}
	public void setTarga(String targa) {
		this.targa = targa;
		map.put(TARGA, targa);
	}
	public String getRegione() {
		return regione;
	}
	public void setRegione(String regione) {
		this.regione = regione;
		map.put(REGIONE, regione);
	}
	public String getCilindrata() {
		return cilindrata;
	}
	public void setCilindrata(String cilindrata) {
		this.cilindrata = cilindrata;
		map.put(CILINDRATA, cilindrata);
	}
	public String getPotenza() {
		return potenza;
	}
	public void setPotenza(String potenza) {
		this.potenza = potenza;
		map.put(POTENZA, potenza);
	}
	public String getEuro() {
		return euro;
	}
	public void setEuro(String euro) {
		this.euro = euro;
		map.put(DIRETTIVA_EURO, euro);
	}
	public String getAlimentazione() {
		return alimentazione;
	}
	public void setAlimentazione(String alimentazione) {
		this.alimentazione = alimentazione;
		map.put(ALIMENTAZIONE, alimentazione);
	}
	public String getCavalli() {
		return cavalli;
	}
	public void setCavalli(String cavalli) {
		this.cavalli = cavalli;
		map.put(CAVALLI, cavalli);
	}
	public String getPosti() {
		return posti;
	}
	public void setPosti(String posti) {
		this.posti = posti;
		map.put(POSTI, posti);
	}
	public String getPortata() {
		return portata;
	}
	public void setPortata(String portata) {
		this.portata = portata;
		map.put(PORTATA, portata);
	}
	public String getPeso() {
		return peso;
	}
	public void setPeso(String peso) {
		this.peso = peso;
		map.put(PESO, peso);
	}
	public String getAssi() {
		return assi;
	}
	public void setAssi(String assi) {
		this.assi = assi;
		map.put(NUMERO_ASSI, assi);
	}
	public String getCategoria() {
		return categoria;
	}
	public void setCategoria(String categoria) {
		this.categoria = categoria;
		map.put(CATEGORIA, categoria);
	}
	public String getImmatricolazione() {
		return immatricolazione;
	}
	public void setImmatricolazione(String immatricolazione) {
		this.immatricolazione = immatricolazione;
		map.put(DATA_IMMATRICOLAZIONE, immatricolazione);
	}
	public String getUso() {
		return uso;
	}
	public void setUso(String uso) {
		this.uso = uso;
		map.put(CODICE_USO, uso);
	}

	public void setEcoDiesel(String ecoDiesel) {
		this.ecoDiesel = ecoDiesel;
		map.put(ECO_DIESEL, ecoDiesel);
	}

	public String getEcoDiesel() {
		return ecoDiesel;
	}
	public void setMap(HashMap<String, String> map) {
		this.map = map;
	}
	public Map<String, String> getMap() {
		return map;
	}
	public void setMap(Map<String, String> map) {
		this.map = map;
	}

	private void valorize() {
		setTipo(map.get(TIPO));
		setTarga(map.get(TARGA));
		setRegione(map.get(REGIONE));
		setCilindrata(map.get(CILINDRATA));
		setPotenza(map.get(POTENZA));
		setEuro(map.get(DIRETTIVA_EURO));
		setAlimentazione(map.get(ALIMENTAZIONE));
		setCavalli(map.get(CAVALLI));
		setPosti(map.get(POSTI));
		setPortata(map.get(PORTATA));
		setPeso(map.get(PESO));
		setAssi(map.get(NUMERO_ASSI));
		setCategoria(map.get(CATEGORIA));
		setImmatricolazione(map.get(DATA_IMMATRICOLAZIONE));
		setUso(map.get(CODICE_USO));
		setEcoDiesel(map.get(ECO_DIESEL));
	}
	
	@Override
	public String toString() {
		return "Veicolo [alimentazione=" + alimentazione + ", assi=" + assi
				+ ", categoria=" + categoria + ", cavalli=" + cavalli
				+ ", cilindrata=" + cilindrata + ", euro=" + euro
				+ ", immatricolazione=" + immatricolazione + ", peso=" + peso
				+ ", portata=" + portata + ", posti=" + posti + ", potenza="
				+ potenza + ", regione=" + regione + ", targa=" + targa
				+ ", tipo=" + tipo + ", uso=" + uso + "]";
	}


}
